﻿namespace Luna.Data.Configuration
{
    /// <summary>
    /// Configuration data provider.
    /// </summary>
    public interface IConfigurationProvider
    {
        #region Database management

        /// <summary>
        /// Creates the new store.
        /// </summary>
        /// <param name="storePath">Path of the store.</param>
        void CreateNewStore(string storePath);

        /// <summary>
        /// Opens the existing store.
        /// </summary>
        /// <param name="storePath">Path of the store.</param>
        void OpenExistingStore(string storePath);

        /// <summary>
        /// Moves the current store to the specified location.
        /// </summary>
        /// <param name="storePath">The store new path.</param>
        void MoveCurrentStoreTo(string storePath);

        /// <summary>
        /// Closes the connection to the current store.
        /// </summary>
        void CloseCurrentStore();

        #endregion Database management
    }
}